CFLAGS = -Wall -pedantic  -O4
CC = g++
LDFLAGS= -Wl,-rpath
OBJECTS = ./CEC2013/cec2013.o ./CEC2013/cfunction.o ./CEC2013/rand2.o Self_Define_Functions.o
INCLUDE = ./CEC2013/cec2013.h ./CEC2013/cfunction.h

all:  MSEDA0 MSEDA1 MSEDA2 MSEDA3

MSEDA0: MSEDA0.o $(OBJECTS) $(INCLUDE)
	$(CC) $(CFLAGS) -o MSEDA0 MSEDA0.o $(OBJECTS)
MSEDA0.o: $(INCLUDE) MSEDA0.cpp
	$(CC) $(CFLAGS) -c MSEDA0.cpp

MSEDA1: MSEDA1.o $(OBJECTS) $(INCLUDE)
	$(CC) $(CFLAGS) -o MSEDA1 MSEDA1.o $(OBJECTS)
MSEDA1.o: $(INCLUDE) MSEDA1.cpp
	$(CC) $(CFLAGS) -c MSEDA1.cpp

MSEDA2: MSEDA2.o $(OBJECTS) $(INCLUDE)
	$(CC) $(CFLAGS) -o MSEDA2 MSEDA2.o $(OBJECTS)
MSEDA2.o: $(INCLUDE) MSEDA2.cpp
	$(CC) $(CFLAGS) -c MSEDA2.cpp

MSEDA3: MSEDA3.o $(OBJECTS) $(INCLUDE)
	$(CC) $(CFLAGS) -o MSEDA3 MSEDA3.o $(OBJECTS)
MSEDA3.o: $(INCLUDE) MSEDA3.cpp
	$(CC) $(CFLAGS) -c MSEDA3.cpp


Self_Define_Functions.o:  ./CEC2013/cec2013.h Self_Define_Functions.h Self_Define_Functions.cpp
	$(CC) $(CFLAGS) -c Self_Define_Functions.cpp

/CEC2013/cec2013.o: ./CEC2013/cec2013.h ./CEC2013/cec2013.cpp ./CEC2013/cfunction.h ./CEC2013/cfunction.cpp
	$(CC) $(CFLAGS) -c ./CEC2013/cec2013.cpp

/CEC2013/cfunction.o: ./CEC2013/cfunction.h ./CEC2013/cfunction.cpp
	$(CC) $(CFLAGS) -c ./CEC2013/cfunction.cpp

/CEC2013/rand2.o: ./CEC2013/rand2.c ./CEC2013/rand2.h
	$(CC) $(CFLAGS) -c ./CEC2013/rand2.c

clean:
	rm -f  $(OBJECTS)
	rm -f  *.o


